﻿// clases de la FCL
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// clases de control
using PDS_ANDU.Controles;
// clases auxiliares
using PDS_ANDU.DTO;

namespace PDS_ANDU.GUI
{
    public partial class SuscriptorPerfiles : Form
    {
        // cuenta de usuario logueado
        string cuenta;

        public SuscriptorPerfiles(string cuenta)
        {
            InitializeComponent();
            this.cuenta = cuenta;
        }

        private void SuscriptorPerfiles_Load(object sender, EventArgs e)
        {
            // ubica la ventana centrada respecto al MdiParent
            this.Location = new Point(this.MdiParent.ClientSize.Width / 2 - this.Width / 2, this.MdiParent.ClientSize.Height / 2 - this.Height / 2);
            // muestra la lista de perfiles del suscriptor logueado
            this.mostrarPerfiles();
        }

        /// <summary>
        /// Manejador de evento "Click en menuItem Perfiles -> Agregar"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void agregarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // crea la instancia de ventana
            SuscriptorAgregarPerfil ventana = new SuscriptorAgregarPerfil(cuenta);
            // asigna el MdiParent
            ventana.MdiParent = this.MdiParent;
            // abra la ventana nueva
            ventana.Show();
            // cierra la ventana actual
            this.Close();
        } // fin del manejador de evento

        /// <summary>
        /// Manejador de evento "Click en botón Agregar perfil"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void botonAgregar_Click(object sender, EventArgs e)
        {
            // crea la instancia de ventana
            SuscriptorAgregarPerfil ventana = new SuscriptorAgregarPerfil(cuenta);
            // asigna el MdiParent
            ventana.MdiParent = this.MdiParent;
            // abra la ventana nueva
            ventana.Show();
            // cierra la ventana actual
            this.Close();
        } // fin del manejador de evento

        /// <summary>
        /// Manejador de evento "Click en botón cancelar"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            // crea la instancia de ventana
            Suscriptor ventana = new Suscriptor(cuenta);
            // asigna el MdiParent
            ventana.MdiParent = this.MdiParent;
            // abra la ventana nueva
            ventana.Show();
            // cierra la ventana actual
            this.Close();
        } // fin del manejador de evento

        /// <summary>
        /// Muestra los perfiles en la tabla de perfiles que se muestra en la pantalla.
        /// </summary>
        private void mostrarPerfiles()
        {
            // crea el control
            ControlPerfil control = new ControlPerfil();
            // solicita al control una lista con todos los perfiles asociados al usuario
            DTOPerfil[] perfiles = control.obtenerPerfiles(cuenta);

            // lista cada uno de los perfiles
            foreach(DTOPerfil perfil in perfiles)
            {
                listView1.Items.Add(perfil.Numero + "");
                listView1.Items[listView1.Items.Count - 1].SubItems.Add(perfil.Nombre);

                // crea una cadena con los filtros en el formato filtro1 - filtro2 -...- filtroN
                string filtros = perfil.Filtros[0];

                for(int i=1; i < perfil.Filtros.Length; i++)
                {
                    filtros += " - " + perfil.Filtros[i];
                }
                listView1.Items[listView1.Items.Count - 1].SubItems.Add(filtros);
            }

        } // fin del método mostrarPerfiles
    }
}
